package com.vertx.starter.guice;

import com.google.inject.AbstractModule;
import com.google.inject.Singleton;
import com.vertx.starter.*;
import com.vertx.starter.service.UserService;
import com.vertx.starter.service.impl.UserServiceImpl;

public class ServiceModule extends AbstractModule {

    public ServiceModule() {
    }

    @Override
    protected void configure() {
        super.configure();

        bind(UserService.class).to(UserServiceImpl.class).in(Singleton.class);

        bind(UserRouter.class).to(UserRouterImpl.class).in(Singleton.class);

        bind(RestRouter.class).to(RestRouterImpl.class).in(Singleton.class);

        bind(MainVerticle.class).to(MainVerticleImpl.class).in(Singleton.class);

        bind(AppServiceLauncher.class).to(AppAppServiceLauncherImpl.class).in(Singleton.class);
    }
}
